This invention relates to resource management in a computing environment where a resource manager is required to control allocation of a resource to competing computing processes.
The invention finds particular, but not exclusive application, to telecommunications apparatus where a plurality of competing processes require access to a telephony resource, such as a modem device.
Classical solutions to resource management in such an environment involve a resource manager model where a single entity provides an “acquire resource” and “release resource” primitives, whereby would-be users of this resource ask the entity for access to the resource. Access may be granted or refused as appropriate.
If access to the resource is granted, the requesting process becomes the owner of the resource until such time as it chooses to relinquish it by performing a “release resource” operation. During its period of ownership, the owner of the resource has exclusive use of it, whereby the aim of the resource management scheme is achieved. Many specific examples of this type of arrangement are known.
However, this type of arrangement, although widely used, has a major weakness. If the current resource owner (frequently a separate unit of execution such as a thread) fails, and exits, due to software or another error, then the resource may end up in a permanently unavailable state because the current owner has failed to perform a “release resource” operation before terminating.
Conventional software design either ignores this problem or tries to avoid it by having the resource requester attempt to clean up (release the resource) before exiting. This, however, cannot always be achieved in a reliable manner. Indeed, with such an arrangement, the resource manager must rely on all of the resource requesters behaving in a reliable and deterministic manner in order to provide overall reliable system operation.
This reliance on the individual requesting processes is a significant weakness in many systems, particularly where those processes may be provided by third party vendors, and the quality of the processes may not always be guaranteed.
Accordingly, an aim of the present invention is to provide more reliable resource management.